package cn.itsource.org.controller;

import cn.itsource.basic.util.AjaxResult;
import cn.itsource.basic.util.PageList;
import cn.itsource.org.domain.Employee;
import cn.itsource.org.query.EmployeeQuery;
import cn.itsource.org.service.IEmployeeService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
@Api(tags = "员工管理相关接口")
@RequestMapping("/emp")
public class EmployeeController {

    /**
     * 注入service层
     */
    @Autowired
    private IEmployeeService employeeService;

    @GetMapping("/managers")
    @ApiOperation("查询所有员工的接口")
    public AjaxResult managers(){

        //1.查询
        List<Employee> all = employeeService.managers();
        //2.封装结果返回
        return AjaxResult.createSuccess(all);
    }

    @GetMapping
    @ApiOperation("查询所有员工的接口")
    public AjaxResult list(){
        /**
         * 本地写的代码直接冲上去 2222222222222222222222222
         * 我在这个公司开个一个月，做了一个根据用户的心情改变app的颜色的功能，做完了，我要提交一下
         * 我在这个公司开个一个月，做了一个根据用户的心情改变app的颜色的功能，做完了，我要提交一下
         * 我在这个公司开个一个月，做了一个根据用户的心情改变app的颜色的功能，做完了，我要提交一下
         * 我在这个公司开个一个月，做了一个根据用户的心情改变app的颜色的功能，做完了，我要提交一下
         * 我在这个公司开个一个月，做了一个根据用户的心情改变app的颜色的功能，做完了，我要提交一下
         * @param args
         */
        /**
        git上面直接添加的代码11111111111111111111111111111111
        解决idea项目中不显示.idea文件
        1.
        关于创建的Java或者Maven项目中,不显示“.idea”文件
        2.
        找到file–settings–Editor–File Types 删除其中的“*.idea”点击应用OK即可
        3.
        修改完成后再次回到项目目录:
        更多

        */
        //1.查询
        List<Employee> all = employeeService.findAll();
        //2.封装结果返回
        return AjaxResult.createSuccess(all);
    }

    /**
     * 分页查询
     * @param employeeQuery
     * @return
     */
    @PostMapping("/findPage")
    @ApiOperation("分页查询所有员工的接口")
    public PageList<Employee> findPage(@RequestBody EmployeeQuery employeeQuery){
        /**
         古巨基你动了我的代码，去年买了个包
11111111111111111111
        */
        /**
         * 古巨基你的脑残，去年买了个表
         */
        //分页查询
        return employeeService.findPage(employeeQuery);
    }

    /**
     * 新增或者修改
     */
    @PostMapping
    @ApiOperation("新增或者修改员工的接口")
    public AjaxResult saveOrUpdate(@RequestBody Employee employee){


        //保存并返回成功
        employeeService.saveOrUpdate(employee);

        return AjaxResult.createSuccess();


    }


    /**
     * 根据id
     */
    @DeleteMapping("/{id}")
    @ApiOperation("删除员工的接口")
    public AjaxResult delete(@PathVariable("id") Long id){

        //调用删除方法
        employeeService.delete(id);

        return AjaxResult.createSuccess();

    }

}
